package com.tinyseed.emcp.api.productionRule.bean;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/***
 * @ClassName: OrganizeNodeOutputDTO
 * @Description: 父节点
 * @Auther: Harlan.Xiong
 * @Date: 2019-11-24 16:17
 * @version : V1.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DeviceNodeOutputDTO implements Serializable {
    /**
     * 唯一主键
     */
    private String id;
    /**
     * 节点名称
     */
    private String name;
    /**
     * 父节点编号
     */
    private String pid;

    /**
     * 节点类型 1：机构  2：公司 3：车间 4:监测点 5: 设备
     */
    private String type;

    /**
     * 子节点列表
     */
    private List<DeviceNodeOutputDTO> children = new ArrayList<DeviceNodeOutputDTO>();

    // 先序遍历，拼接JSON字符串
    /*public String toString() {
        String result = "{"
                + "id : '" + id + "'"
                + ", name : '" + name + "'";

        if (children != null && children.getSize() != 0) {
            result += ", children : " + children.toString();
        } else {
            result += ", leaf : true";
        }

        return result + "}";
    }*/

    // 兄弟节点横向排序
   /* public void sortChildren() {
        if (children != null && children.getSize() != 0) {
            children.sortChildren();
        }
    }
*/
    // 添加子节点
    public void addChild(DeviceNodeOutputDTO node) {
        this.children.add(node);
    }
}
